package com.example.cash.craft.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 订单
 */
@Data
@TableName("`order`")
public class Order implements Serializable {

    /**
     * 订单ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 使用积分数量
     */
    private Integer rewardPointsUsed;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 实际支付金额
     */
    private BigDecimal actualPaymentAmount;

    /**
     * 订单状态，0=未支付，1=已支付，2=已完成，3=已取消
     */
    private Integer status;

    /**
     * 订单状态枚举类
     */
    public enum Status {

        UNPAID(0), // 未支付
        PAID(1),  // 已支付
        COMPLETED(2), // 已完成
        CANCELED(3);  // 已取消

        private final int value;

        Status(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

}